package cn.itcast.dao;

import cn.itcast.pojo.Menu;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.LinkedHashSet;
import java.util.List;

public interface MenuDao {

//    /**
//     * 查询所有
//     *
//     * @return
//     */
//    Page<Menu> queryMenu();

    /**
     * 分页查询(查询父级和子级菜单)
     *
     * @param id
     * @return
     */
    Page<Menu> queryMenuByIdList(Integer id);

    /**
     * 新增菜单表
     *
     * @param menu
     * @return
     */
    Boolean addMenu(Menu menu);

    /**
     * 新增该菜单在中间表中的权限
     */
    Boolean addMenuPermission(@Param("permission_id") Integer permissionIds,@Param("menu_id") Integer menuId);

    /**
     * 回显编辑栏数据
     * @param mid
     * @return
     */
    Menu queryMenuById(Integer mid);

    /**
     * 修改菜单表
     * @param menu
     */
    void updateMenu(Menu menu);

    /**
     * 删除
     * @param mid
     * @return
     */
    void deleteMenuById(Integer mid);

    void deleteMenuPermission(Integer mid);

    /**
     * 查询用户的父级菜单
     * @param parentMenuId
     * @param roleId
     * @return
     */
    LinkedHashSet<Menu> queryParentMenuByRoleIdAndPid(@Param("parentMenuId") Integer parentMenuId,@Param("role_id") Integer roleId);

}
